package com.hlpedu.mapper;

import com.hlpedu.pojo.TbUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 持久层接口
 */
public interface TbUserMapper {
    //使用map封装参数，实现批量删除
    int deleteBatchUser(Map<String,Object> maps);
    //批量查询指定id的用户信息，使用数组封装参数（自己完成）
    //批量更新，使用list封装参数
    int updateBatchUser(List<TbUser> userList);
    //批量新增，使用list封装参数
    int addUserInfoByList(List<TbUser> userList);
    /**
     * 批量查询指定id的用户信息
     * @param idList 封装多个查询条件
     * @return 返回符合记录的集合
     */
    List<TbUser> selectUserByIds(List<Integer> idList);
    /**
     * 根据用户编号修改对应用户的姓名和性别
     * @param tbUser 封装参数
     * @return 更新成功返回大于0的数，反之返回0
     */
    int updateUserInfoById(TbUser tbUser);
    /**
     * 根据员工姓名，性别，年龄进行模糊查询
     * @param age
     * @param name
     * @param sex
     * @return
     */
    /*根据当员工的姓名，性别，年龄，运行模糊查询
    1.当员工姓名不为空时，只用姓名作为条件进行模糊查询
    2.当姓名为空时，而性别不为空则以性别为条件进行查询
    3.当姓名，性别都为空，则以年龄区间为条件进行查询
     */
    List<TbUser> queryUserInfo(@Param("name") String name,
                               @Param("sex")String sex,@Param("age") Integer age);
    /**
     * 根据年龄区间和姓名做模糊查询
     * @return 符合条件的记录行的集合
     */
    List<TbUser> queryUserByAgeAndName(@Param("age") Integer age, @Param("name") String name);
    /**
     * 查询所有tb_user中所有记录
     * @return 所有记录的集合
     */
    List<Map<String, Object>> queryAllUserByMap();
    /**
     * 查询tb_user中的所有记录
     * @return 所有记录的集合
     */
    List<TbUser> queryAllUser();
}
